/**
* Copyright (C) 2013-2015
*
* @file   S_2_Curtain_doAction.c
*
* @remark
*
*/

#include "S_2_Curtain_doAction.h"
#include "iid.h"

#include "gwin_main_task.h"


static operation_code_t A_2_2_MotionStateToggle()
{
    // TODO: 在这里执行真正的Action操作
    uint8_t action = MAIN_TASK_MSG_EX_ACT_SUBTYPE_CURTAIN_TOGGLE;
    gwin_main_extern_action(action);

    return OPERATION_OK;
}

/**
 * 将Action调用转换为强类型的函数调用。
 */
static void A_2_2_MotionStateToggle_doInvoke(action_operation_t *o)
{
    // 检查输入参数个数
#if 0
    if (o->in->size != 0)
    {
        o->code = OPERATION_INVALID;
        return;
    }
#endif
    // 输出结果个数
    o->out->size = 0;

    // 调用真正的执行函数
    o->code = A_2_2_MotionStateToggle();
}

void S_2_Curtain_doAction(action_operation_t *o)
{
    switch (o->aiid)
    {
        case IID_2_2_MotionStateToggle:
            A_2_2_MotionStateToggle_doInvoke(o);
            break;

        default:
            o->code = OPERATION_INVALID;
            break;
    }
}
